package com.ll.listdemo;

import java.util.ArrayList;
import java.util.List;

/**
 * @author 刘龙
 * @version 1.0
 */
public class ListMethod {
    public static void main(String[] args) {
        List list = new ArrayList();
        list.add("ll");
        list.add("ll2");
        list.add("ll3");

        // 在 index = 1 位置插入一个对象
        list.add(1, "java");

        // [ll, java, ll2, ll3]
        System.out.println(list);

        List list2 = new ArrayList();
        list2.add("c#1");
        list2.add("c#2");
        list2.addAll(1, list);
        // [c#1, ll, java, ll2, ll3, c#2]
        System.out.println(list2);

        // 获取指定index位置的元素
        // c#1
        System.out.println(list2.get(0));

        // Object indexOf(Object obj) 返回obj在集合中首次出现的位置
        // 5
        System.out.println(list2.indexOf("c#2"));

        // Object lastIndexOf(Object obj) 返回obj在集合中最后出现的位置
        // 5
        System.out.println(list2.lastIndexOf("c#2"));

        // boolean remove(Object o); 删除指定元素
        // E remove(int index); 删除指定位置元素
        // true
        System.out.println(list2.remove("c#2"));
        // [c#1, ll, java, ll2, ll3]
        System.out.println(list2);

        // E set(int index, E element); 设置指定位置的元素,相当于替换, 返回被替换的元素
        System.out.println(list2.set(0, "python"));
        // [python, ll, java, ll2, ll3]
        System.out.println(list2);

        // List<E> subList(int fromIndex, int toIndex);
        // 返回从fromIndex到toIndex位置的子集合,(fromIndex,toIndex]
        // [java, ll2, ll3]
        System.out.println(list.subList(2,4));
    }
}
